import request from "./request";
import { browser } from "./index";
import { jsApiList, ywServer } from "@/config";
import { Cookies } from "./auth";
export function wechatAuth() {
  let pars = {
    url: window.location.href.split("#")[0]
  };
  request({
    url: `${ywServer}/app/subscriber/getWechatOAuth.action?data=${encodeURIComponent(
      JSON.stringify(pars)
    )}`,
    methods: "get",
    headers: {},
    noToken: true
  })
    .then(({ resultValue, resultCode }) => {
      const wxconfig = {
        debug: Cookies.get("xlg-debug") ? true : false,
        appId: resultValue[0].appId,
        timestamp: +resultValue[0].timestamp,
        nonceStr: resultValue[0].nonceStr,
        signature: resultValue[0].signature,
        jsApiList: jsApiList
      };

      if (resultCode == 0) {
        wx.config(wxconfig);
        wx.ready(() => {
          console.log("wx.ready", wx);
          // wx.hideAllNonBaseMenuItem();
        });
        wx.error(function(res) {
          console.log(res);
          // config信息验证失败会执行error函数，如签名过期导致验证失败，具体错误信息可以打开config的debug模式查看，也可以在返回的res参数中查看，对于SPA可以在这里更新签名。
        });
      } else {
        console.log("微信JS-SDK接口调用失败");
      }
    })
    .catch(err => {
      console.log(`服务器错误，微信JS-SDK接口调用失败`);
    });
}

export function wechatScan() {
  return new Promise((resolve, reject) => {
    if (!browser.wechat) {
      return reject("请在微信端访问");
    }

    wx.scanQRCode({
      // desc: 'scanQRCode desc',
      needResult: 1, // 默认为0，扫描结果由微信处理，1则直接返回扫描结果，
      scanType: ["qrCode", "barCode"], // 可以指定扫二维码还是一维码，默认二者都有
      success: function(res) {
        const result = res.resultStr;
        return resolve(result);
      },
      error: function(res) {
        if (res.errMsg.indexOf("function_not_exist") > 0) {
          return reject("版本过低请升级");
        }
      }
    });
  });
}

export function scan(callback) {
  wechatScan().then(res => {
    const [code] = res.match(/\d+$/g) || [];
    if (callback && code) {
      callback(code);
    } else {
      callback(null);
    }
  });
}

export function setShare({ title, link, imgUrl, desc }, callback) {
  console.log("设置分享内容", { title, link, imgUrl, desc });
  // wx.ready(() => {
  wx.onMenuShareTimeline &&
    wx.onMenuShareTimeline({
      title,
      link,
      imgUrl,
      success(res) {
        console.log(res);
        //这里是回调函数
        callback && callback(res);
      }
    });
  wx.onMenuShareAppMessage &&
    wx.onMenuShareAppMessage({
      title,
      desc,
      link,
      imgUrl,
      success(res) {
        console.log(res);
        //这里是回调函数
        callback && callback(res);
      }
    });
  // wx.updateTimelineShareData &&
  //   wx.updateTimelineShareData(
  //     {
  //       title,
  //       link,
  //       imgUrl
  //     },
  //     function(res) {
  //       console.log(res);
  //       //这里是回调函数
  //       callback && callback(res);
  //     }
  //   );
  // wx.updateAppMessageShareData &&
  //   wx.updateAppMessageShareData(
  //     {
  //       title,
  //       desc,
  //       link,
  //       imgUrl
  //     },
  //     function(res) {
  //       console.log(res);
  //       //这里是回调函数
  //       callback && callback(res);
  //     }
  //   );
  console.log("设置分享内容完毕");
  // });
}
